#include #include #include RTC_DS1307 RTC; // Массив со словами char* myNumeral[]={"\132\105\122\117", // ноль - 0 (zero) "\117\116\105", //одна - 1 (one) "\124\127\117", //две - 2 (two) "\124\110\122\105\105", //три - 3 (three) "\106\117\125\122", //четыре - 4 (four) "\106\111\126\105", //пять - 5 (five) "\123\111\130", //шесть - 6 (six) "\123\105\126\105\116", //семь - 7 (seven) "\105\111\107\110\124", //восемь - 8 (eight) "\116\111\116\105", //девять - 9 (nine) "\124\105\116", // десять - 10 (ten) "\105\114\105\126\105\116", //одиннадцать - 11 (eleven) "\124\127\105\114\126\105", // двенадцать - 12 (twelve) "\124\110\111\122\124\105\105\116", //тринадцать - 13 (thirteen) "\106\117\125\122\124\105\105\116", //четырнадцать - 14 (fourteen) "\106\111\106\124\105\105\116", // пятнадцать - 15 (fifteen) "\123\111\130\124\105\105\116", //шестнадцать - 16 (sixteen) "\123\105\126\105\116\124\105\105\116", // семнадцать - 17 (seventeen) "\105\111\107\110\124\105\105\116", //восемнадцать - 18 (eighteen) "\116\111\116\105\124\105\105\116", //девятнадцать - 19 (nineteen) "\124\127\105\116\124\131", // двадцать - 20 (twenty) "\124\110\111\122\124\131", // тридцать - 21 (thirty) "\106\117\122\124\131", //сорок - 22 (forty) "\106\111\106\124\131", //пятьдесят - 23 (fifty) "\117\116\105", // один - 24 (one) "\124\127\117", // два - 25 (two) "\117\140\103\114\117\103\113", // часов - 26 (0'CLOCK) "\227\200\221", // час - 27 "\227\200\221\200", // часа - 28 "\214\210\215\223\222", // минут - 29 "\214\210\215\223\222\200", // минута - 30 "\115\111\116\125\124\105\123", // минуты - 31 (minutes) "\115\111\116", // мин - 32 (min) "\115\117\116\104\101\131", // понедельник - 33 (monday) "\124\125\105\123\104\101\131", // вторник - 34 (tuesday) "\127\105\104\116\105\123\104\101\131", // среда - 35 (wednesday) "\124\110\125\122\123\104\101\131", // четверг - 36 (thursday) "\106\122\111\104\101\131", //пятница - 37 (friday) "\123\101\124\125\122\104\101\131", // суббота - 38 (saturday) "\123\125\116\104\101\131", // воскресенье - 39 (sunday) "\112\101\116", // января - 40 (jan) "\106\105\102", // февраля - 41 (feb) "\115\101\122", // марта - 42 (mar) "\101\120\122", // апреля - 43 (apr) "\115\101\131", // мая - 44 (may) "\112\125\116", // июня - 45 (jun) "\112\125\114", // июля - 46 (jul) "\101\125\107", // августа - 47 (aug) "\123\105\120", // сентября - 48 (sep) "\117\103\124", // октября - 49(oct) "\116\117\126", // ноября - 50 (nov) "\104\105\103", // декабря - 51 (dec) "\131\105\101\122" // год - 52 (year) }; String stringOne, stringTwo, stringThree, stringFour, stringFive, stringSix, stringHour, stringMin, stringHourd,stringHourdd, stringMind,stringMindd, stringSecd, stringSecdd, stringPerd, stringDaty, stringVtor, stringdday,stringDatyd, stringddayy, stringdmonth, stringdmonthh, stringGod, stringGodn; // эту фигню объявил для сборки времени словами из массива SoftwareSerial mySerial(11, 10); // RX, TX const int buttonPin = 2; // на второй вывод повесил кнопку выбора варианта отображения времени const int buttonChplus = 3; // на третий вывод повесил кнопку коррентировки час+ const int buttonChminus = 4; // на четвертый вывод повесил кнопку коррентировки час- const int buttonMinplus = 5; // на пятый вывод повесил кнопку коррентировки минуты+ const int buttonMinminus = 6; // на шестой вывод повесил кнопку коррентировки минуты- const int buttonSeknol = 7; // на седьмой вывод повесил кнопку коррентировки секунды в ноль const int buttonDispleysbros = 8; // на восьмой вывод повесил кнопку сброса дисплея const int buttonCorrHour = 12; // на двенадцатом выводе переключатель корректировки час минута секунда const int buttonCorrDay = 9; // на двенадцатом выводе переключатель корректировки дней месяца года int den, mec, god, dday,agod,ygod,mgod; // для вычисления дня недели int yar, mesyac, denec, chas, minuta, sekunda; // для коррентировки int korrektwrem; // коррекция ошибки часов реального времени void setup() { // Инициализируем последовательный интерфейс и ждем открытия порта: Serial.begin(9600); while (!Serial) { ; // ожидаем подключения к последовательному порту. Необходимо только для Leonardo } Serial.println("Goodnight moon!"); mySerial.begin(9600); { Serial.begin(57600); Wire.begin(); RTC.begin(); mySerial.write(0x1B); //_________________________Первый уровень яркости mySerial.write(0x2A); mySerial.write(0x01); //RTC.adjust(DateTime(2018, 2, 5, 19, 16, 0)); // задаём год/ месяц/ дата/ часы/ минуты/ секунды } { pinMode(buttonPin, INPUT_PULLUP); // вывод этот объявим входом для варианта отображения впемени pinMode(buttonChplus, INPUT_PULLUP); // и этот вывод объявим входом для корректироки час + pinMode(buttonChminus, INPUT_PULLUP); // и этот вывод объявим входом для корректировки час - pinMode(buttonMinplus, INPUT_PULLUP); // и этот вывод объявим входом для корректировки минута + pinMode(buttonMinminus, INPUT_PULLUP); // и этот вывод объявим входом для корректировки минута - pinMode(buttonSeknol, INPUT_PULLUP); // и этот вывод объявим входом для корректировки секунда в 0 pinMode(buttonDispleysbros, INPUT_PULLUP); // и этот вывод объявим входом для сброса дисплея pinMode(buttonCorrHour, INPUT_PULLUP); // и этот вывод объявим входом для полодения тумблера коррекция времени часминсек pinMode(buttonCorrDay, INPUT_PULLUP); // и этот вывод объявим входом для полодения тумблера коррекция времени деньмесяцгод } } void loop() // run over and over { if (mySerial.available()) Serial.write(mySerial.read()); if (Serial.available()) mySerial.write(Serial.read()); // mySerial.print("\f"); // для тестирования DateTime now = RTC.now(); { yar = now.year(); // присваиваем переменным значения года mesyac = now.month(); // месяца denec = now.day(); // дня chas = now.hour(); // часа minuta = now.minute(); // минуты sekunda = now.second(); // и секунды } int buttonStatehour = digitalRead(buttonCorrHour); // считываем состояние тумблера корректировки часминсек if (buttonStatehour == LOW) // если низкая, корректируем время часминсек {int buttonStatehp = digitalRead(buttonChplus); //настройка времени кнопками + час if (buttonStatehp == LOW){ chas = chas + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatehm = digitalRead(buttonChminus); //настройка времени кнопками - час if (buttonStatehm == LOW){ chas = chas - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemp = digitalRead(buttonMinplus); //настройка времени кнопками + минуты if (buttonStatemp == LOW){ minuta = minuta + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemm = digitalRead(buttonMinminus); //настройка времени кнопками - минуты if (buttonStatemm == LOW){ minuta = minuta - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatesn = digitalRead(buttonSeknol); //настройка времени кнопками секунда в ноль if (buttonStatesn == LOW){ sekunda = 0; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStateds = digitalRead(buttonDispleysbros); //сбросить дисплей if (buttonStateds == LOW){ mySerial.print("\f"); delay(50); } } int buttonStateday = digitalRead(buttonCorrDay); // считываем состояние тумблера корректировки деньмесяцгод if (buttonStateday == LOW) // если низкая, можно корректировать время деньмесяцгод { int buttonStatehp = digitalRead(buttonChplus); //настройка времени кнопками + год if (buttonStatehp == LOW){ yar = yar + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatehm = digitalRead(buttonChminus); //настройка времени кнопками - год if (buttonStatehm == LOW){ yar = yar - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemp = digitalRead(buttonMinplus); //настройка времени кнопками + день if (buttonStatemp == LOW){ denec = denec + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemm = digitalRead(buttonMinminus); //настройка времени кнопками - день if (buttonStatemm == LOW){ denec = denec - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatesn = digitalRead(buttonSeknol); //настройка времени кнопками + месяц if (buttonStatesn == LOW){ mesyac = mesyac + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStateds = digitalRead(buttonDispleysbros); //сбросить дисплей if (buttonStateds == LOW){ mySerial.print("\f"); delay(50); } } if (chas == 19 && minuta == 03 && sekunda == 30 && korrektwrem == 0 ) // корректировка часов реального времени { sekunda = sekunda - 7; korrektwrem = korrektwrem + 1 ;RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); // на 7 секунд }; if (chas == 19 && minuta == 03 && sekunda == 59 ) { korrektwrem = 0; } int buttonState = digitalRead(buttonPin); // считываем состояние кнопки if (buttonState == HIGH) { // если высокая, время словами - иначе вся информация switch (now.hour()) { //собираем первую строку case 0: stringOne = myNumeral[0]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " "; break; case 1: stringOne = myNumeral[24]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 3: stringOne = myNumeral[3]; stringThree = myNumeral[28]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 4: stringOne = myNumeral[4]; stringThree = myNumeral[28]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 5: stringOne = myNumeral[5]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 6: stringOne = myNumeral[6]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 7: stringOne = myNumeral[7]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 8: stringOne = myNumeral[8]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 9: stringOne = myNumeral[9]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 10: stringOne = myNumeral[10]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 11: stringOne = myNumeral[11]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 12: stringOne = myNumeral[12]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 13: stringOne = myNumeral[13]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 14: stringOne = myNumeral[14]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 15: stringOne = myNumeral[15]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 16: stringOne = myNumeral[16]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 17: stringOne = myNumeral[17]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 18: stringOne = myNumeral[18]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 19: stringOne = myNumeral[19]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 20: stringOne = myNumeral[20]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 21: stringOne = myNumeral[20]; stringTwo = myNumeral[1]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringTwo + " " + stringThree + " ";break; case 22: stringOne = myNumeral[20]; stringTwo = myNumeral[2]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringTwo + " " + stringThree + " ";break; case 23: stringOne = myNumeral[20]; stringTwo = myNumeral[3]; stringThree = myNumeral[26]; stringHour = "" + stringOne + "" + stringTwo + "" + stringThree + "";break; } switch (now.minute()) { // собираем вторую строку case 0: stringFour = myNumeral[0]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 1: stringFour = myNumeral[1]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 2: stringFour = myNumeral[2]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 3: stringFour = myNumeral[3]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 4: stringFour = myNumeral[4]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 5: stringFour = myNumeral[5]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 6: stringFour = myNumeral[6]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 7: stringFour = myNumeral[7]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 8: stringFour = myNumeral[8]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 9: stringFour = myNumeral[9]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 10: stringFour = myNumeral[10]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 11: stringFour = myNumeral[11]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 12: stringFour = myNumeral[12]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 13: stringFour = myNumeral[13]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 14: stringFour = myNumeral[14]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 15: stringFour = myNumeral[15]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 16: stringFour = myNumeral[16]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 17: stringFour = myNumeral[17]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 18: stringFour = myNumeral[18]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 19: stringFour = myNumeral[19]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 20: stringFour = myNumeral[20]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 21: stringFour = myNumeral[20]; stringFive = myNumeral[1];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 22: stringFour = myNumeral[20]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 23: stringFour = myNumeral[20]; stringFive = myNumeral[3];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 24: stringFour = myNumeral[20]; stringFive = myNumeral[4];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 25: stringFour = myNumeral[20]; stringFive = myNumeral[5];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 26: stringFour = myNumeral[20]; stringFive = myNumeral[6];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 27: stringFour = myNumeral[20]; stringFive = myNumeral[7];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 28: stringFour = myNumeral[20]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 29: stringFour = myNumeral[20]; stringFive = myNumeral[9];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 30: stringFour = myNumeral[21]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 31: stringFour = myNumeral[21]; stringFive = myNumeral[1];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 32: stringFour = myNumeral[21]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 33: stringFour = myNumeral[21]; stringFive = myNumeral[3];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 34: stringFour = myNumeral[21]; stringFive = myNumeral[4];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 35: stringFour = myNumeral[21]; stringFive = myNumeral[5];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 36: stringFour = myNumeral[21]; stringFive = myNumeral[6];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 37: stringFour = myNumeral[21]; stringFive = myNumeral[7];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 38: stringFour = myNumeral[21]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 39: stringFour = myNumeral[21]; stringFive = myNumeral[9];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 40: stringFour = myNumeral[22]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 41: stringFour = myNumeral[22]; stringFive = myNumeral[1];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 42: stringFour = myNumeral[22]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 43: stringFour = myNumeral[22]; stringFive = myNumeral[3];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 44: stringFour = myNumeral[22]; stringFive = myNumeral[4];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 45: stringFour = myNumeral[22]; stringFive = myNumeral[5];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 46: stringFour = myNumeral[22]; stringFive = myNumeral[6];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 47: stringFour = myNumeral[22]; stringFive = myNumeral[7];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 48: stringFour = myNumeral[22]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 49: stringFour = myNumeral[22]; stringFive = myNumeral[9];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 50: stringFour = myNumeral[23]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 51: stringFour = myNumeral[23]; stringFive = myNumeral[1];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 52: stringFour = myNumeral[23]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 53: stringFour = myNumeral[23]; stringFive = myNumeral[3];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 54: stringFour = myNumeral[23]; stringFive = myNumeral[4];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 55: stringFour = myNumeral[23]; stringFive = myNumeral[5];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 56: stringFour = myNumeral[23]; stringFive = myNumeral[6];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 57: stringFour = myNumeral[23]; stringFive = myNumeral[7];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 58: stringFour = myNumeral[23]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; case 59: stringFour = myNumeral[23]; stringFive = myNumeral[9];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break; } mySerial.println(stringHour); //печать первой строки mySerial.print(stringMin); // печать второй строки delay(500); } else { den = now.day(); mec = now.month(); god = now.year(); agod = (14 - mec) / 12; ygod = god - agod; mgod = mec + 12 * agod - 2; dday = ( den + ygod + (ygod / 4) - ( ygod / 100 ) + (ygod / 400 ) + (31 * mgod) / 12) %7; // вычисление дня недели //Serial.print(dday); stringHourdd = now.hour(); stringMindd = (now.minute());stringSecdd = now.second(), stringDatyd = now.day(), stringGod = now.year(), stringGodn = myNumeral[52] ; switch (dday) { // блок имени дня недели case 0: stringdday = stringddayy + " "; stringddayy =myNumeral[39]; break; case 1: stringdday = stringddayy + " "; stringddayy =myNumeral[33]; break; case 2: stringdday = stringddayy + " "; stringddayy =myNumeral[34]; break; case 3: stringdday = stringddayy + " "; stringddayy = myNumeral[35]; break; case 4: stringdday = stringddayy + " "; stringddayy = myNumeral[36]; break; case 5: stringdday = stringddayy + " "; stringddayy = myNumeral[37]; break; case 6: stringdday = stringddayy + " "; stringddayy = myNumeral[38]; break; } switch (now.month()) { // блок имени месяца case 1: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[40]; break; case 2: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[41]; break; case 3: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[42]; break; case 4: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[43]; break; case 5: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[44]; break; case 6: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[45]; break; case 7: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[46]; break; case 8: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[47]; break; case 9: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[48]; break; case 10: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[49]; break; case 11: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[50]; break; case 12: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[51]; break; } if (now.hour() < 10) // это нолики перед часами до 10 { stringHourd = '0' + stringHourdd; } else { stringHourd = stringHourdd; } if (now.minute() < 10) // это нолики перед минутами до 10 { stringMind = '0' + stringMindd; } else { stringMind = stringMindd; } if (now.second() < 10) // это нолики перед секундами до 10 { stringSecd = '0' + stringSecdd; } else { stringSecd = stringSecdd; } if (now.day() < 10) // это нолики перед датой до 10 { stringDaty = '0' + stringDatyd; } else { stringDaty = stringDatyd; } stringPerd = stringHourd + ':' + stringMind + ':' + stringSecd + " " + stringdday; // собираем первую строку stringVtor = "\r\n" + stringDaty + " " + stringdmonth + stringGod + " " + stringGodn; // собираем вторую строку mySerial.println(stringPerd); // печатаем первую строку mySerial.print(stringVtor); // а это вторую delay(100); } }